/*
 * Copyright (c) 2016-2020, Chengdu RST technology co., ltd
 *
 * Change Logs:
 * Date           Author       Notes
 * 2020-12-15     shijiabao       the first version
 */
#ifndef APPLICATIONS_CONFIGURE_DEVICE_CONFIGURE_H_
#define APPLICATIONS_DEVICE_CONFIGURE_H_

#define CONFIGURE_FLASH_ADDR  0x0806C000

#define DOWNLOAD_FIRMWARE_FLASH_ADDR 0x08039800
#define FLASH_UPDATE_FLAG_ADDR 0x0806B800

/* DTU参数配置FLASH存储信息
 *   FLASH存储数据格式：大端模式
 */

/*******************(1)系统参数（4KB）*****************/
/* IMEI */
#define IMEI_FLASH_ADDR                  0x00
#define IMEI_FLASH_ADDR_SIZE             0x12

/* 设备型号 */
#define PRODUCT_NAME_ADDR                0x12
#define PRODUCT_NAME_ADDR_SIZE           0x0A

/* 硬件版本 */
#define HARDWARE_VERSION_ADDR            0x1C
#define HARDWARE_VERSION_ADDR_SIZE       0x06

/* 软件版本 */
#define SOFTWARE_VERSION_ADDR            0x22
#define SOFTWARE_VERSION_ADDR_SIZE       0x06

/* 序列号 */
#define SERIAL_NUMBER_ADDR               0x28
#define SERIAL_NUMBER_ADDR_SIZE          0x14

/* 身份识别码 */
#define DEVICE_NUMBER_ADDR               0x3C
#define DEVICE_NUMBER_ADDR_SIZE          0x0C

/* 设备温度 */
#define DEVICE_TEMPERATURE_ADDR          0x48
#define DEVICE_TEMPERATURE_ADDR_SIZE     0x20

/* 设备时间  */
#define DEVICE_TIME_ADDR                 0x4A
#define DEVICE_TIME_ADDR_SIZE            0x20


/***********(2)网络服务参数（4KB）****************/
/*  APN启用配置  */
#define APN_USE_FLAG_ADDR                 0x1000
#define APN_USE_FLAG_ADDR_SIZE            0x02

/*  移动网络接入点  */
#define APN_ACCESS_POINT_ADDR             0x1002
#define APN_ACCESS_POINT_ADDR_SIZE        0x20

/* 访问用户名 */
#define APN_ACCESS_USER_ADDR              0x1022
#define APN_ACCESS_USER_ADDR_SIZE         0x20

/* 接入密码 */
#define APN_ACCESS_PASSWORD_ADDR          0x1042
#define APN_ACCESS_PASSWORD_ADDR_SIZE     0x20

//数据传输模式
#define DATA_TRANSMISSION_MODE_ADDR       0x1062
#define DATA_TRANSMISSION_MODE_ADDR_SIZE  0x02

/* 注册包 */
#define REGISTER_PACKET_ADDR              0x1064
#define REGISTER_PACKET_ADDR_SIZE         0x20

/* 心跳包*/
#define BREATHE_PACKET_ADDR               0x1084
#define BREATHE_PACKET_ADDR_SIZE          0x20

/* 心跳间隔s*/
#define BREATHE_TIME_ADDR                 0x10A4
#define BREATHE_TIME_ADDR_SIZE            0x03

/* 透传中心1IP */
#define DATA_CENTER1_IP_ADDR              0x10A7
#define DATA_CENTER1_IP_ADDR_SIZE         0x20

/* 透传中心1端口 */
#define DATA_CENTER1_PORT_ADDR             0x10C7
#define DATA_CENTER1_PORT_ADDR_SIZE        0x10CA

/* 透传中心2IP */
#define DATA_CENTER2_IP_ADDR               0x10CA
#define DATA_CENTER2_IP_ADDR_SIZE          0x20

/* 透传中心2端口 */
#define DATA_CENTER2_PORT_ADDR             0x10EA
#define DATA_CENTER2_PORT_ADDR_SIZE        0x03

/* 数据中心IP */
#define DATA_CENTER_IP_ADDR                0x10ED
#define DATA_CENTER_IP_ADDR_SIZE           0x20

/* 数据中心端口 */
#define DATA_CENTER_PORT_ADDR              0x110D
#define DATA_CENTER_PORT_ADDR_SIZE         0x03

//多通道启动配置
#define MULTICHANNEL_ADDR                  0x1110
#define MULTICHANNEL_ADDR_SIZE             0x03


/***************(3)串口参数（4KB）********************/
/*实际有效数据空间0x18*/
/* 串口（RS485） 波特率  */
#define RS485_BAUD_RATE_ADDR              0x2000
#define RS485_BAUD_RATE_ADDR_SIZE         0x02

/* 串口（RS485） 数据位  */
#define RS485_DATA_BIT_ADDR               0x2002
#define RS485_DATA_BIT_ADDR_SIZE          0x02

/* 串口（RS485） 停止位  */
#define RS485_STOP_BIT_ADDR               0x2004
#define RS485_STOP_BIT_ADDR_SIZE          0x02

/* 串口（RS485） 奇偶校验位  */
#define RS485_PARITY_CHECK_BIT_ADDR       0x2006
#define RS485_PARITY_CHECK_BIT_ADDR_SIZE  0x02

/* 串口（RS232） 波特率  */
#define RS232_BAUD_RATE_ADDR              0x2008
#define RS232_BAUD_RATE_ADDR_SIZE         0x02

/* 串口（RS232） 数据位  */
#define RS232_DATA_BIT_ADDR               0x200A
#define RS232_DATA_BIT_ADDR_SIZE          0x02

/* 串口（RS232） 停止位  */
#define RS232_STOP_BIT_ADDR               0x200C
#define RS232_STOP_BIT_ADDR_SIZE          0x02

/* 串口（RS232） 奇偶校验位  */
#define RS232_PARITY_CHECK_BIT_ADDR       0x200E
#define RS232_PARITY_CHECK_BIT_ADDR_SIZE  0x02

/* modbus 私有指令1  */
#define PRIVATE_MODBUS_INSTRUCTION_1_ADDR        0x2010
#define PRIVATE_MODBUS_INSTRUCTION_1_ADDR_SIZE   0x20

/* modbus 私有指令2  */
#define PRIVATE_MODBUS_INSTRUCTION_2_ADDR        0x2030
#define PRIVATE_MODBUS_INSTRUCTION_2_ADDR_SIZE   0x20

/* modbus 私有指令3  */
#define PRIVATE_MODBUS_INSTRUCTION_3_ADDR        0x2050
#define PRIVATE_MODBUS_INSTRUCTION_3_ADDR_SIZE   0x20

/* modbus 私有指令4  */
#define PRIVATE_MODBUS_INSTRUCTION_4_ADDR        0x2070
#define PRIVATE_MODBUS_INSTRUCTION_4_ADDR_SIZE   0x20

void dtu_config_file_init(void);

#endif /* APPLICATIONS_CONFIGURE_DEVICE_CONFIGURE_H_ */

